


#ifndef LOG_H__
#define LOG_H__

#include "log_config.h"

#if GLOBAL_LOG_ENABLED

// nRF52 series LOG use RTT 
#if (LOG_INTERFACE_TYPE == NRF_LOG)
#include "nrf_log.h"
#include "nrf_log_ctrl.h"
#include "nrf_log_default_backends.h"
#define LOG_PRINT       NRF_LOG_INFO   

void log_init(void);
int log_printf(const char* sFormat,...);

#define LOG_INFO         NRF_LOG_INFO
#define LOG_INFO0        NRF_LOG_INFO
#define LOG_INFO1        NRF_LOG_INFO
#define LOG_INFO2        NRF_LOG_INFO 
#define LOG_INFO3        NRF_LOG_INFO 

#elif (LOG_INTERFACE_TYPE == RTT_LOG)
#include "SEGGER_RTT.h"
#include "SEGGER_RTT_Conf.h"


#elif (LOG_INTERFACE_TYPE == REALTEK_LOG)
#include "trace.h"

#define LOG_INFO         APP_PRINT_INFO0
#define LOG_INFO0        APP_PRINT_INFO0
#define LOG_INFO1        APP_PRINT_INFO1
#define LOG_INFO2        APP_PRINT_INFO2 
#define LOG_INFO3        APP_PRINT_INFO3 
#define LOG_INFO4        APP_PRINT_INFO4
#define LOG_INFO5        APP_PRINT_INFO5
#define FORMAT_STRING            TRACE_STRING

#define xLOG_INFO(...)
#define xLOG_INFO0(...)
#define xLOG_INFO1(...)
#define xLOG_INFO2(...) 
#define xLOG_INFO3(...)
#define xLOG_INFO4(...)
#define xLOG_INFO5(...)
#elif (LOG_INTERFACE_TYPE == WIN32_LOG)
#include <stdio.h>
#define LOG_INFO         printf_s
#define LOG_INFO0        printf_s
#define LOG_INFO1        printf_s
#define LOG_INFO2        printf_s 
#define LOG_INFO3        printf_s 
#define LOG_INFO4        printf_s

#define FORMAT_STRING           printf_s

#define xLOG_INFO(...)
#define xLOG_INFO0(...)
#define xLOG_INFO1(...)
#define xLOG_INFO2(...) 
#define xLOG_INFO3(...)


#else // 
#define xLOG_INFO(...)
#define xLOG_INFO0(...)
#define xLOG_INFO1(...)
#define xLOG_INFO2(...) 
#define xLOG_INFO3(...)

#define LOG_INFO(...) 
#define LOG_INFO0(...)
#define LOG_INFO1(...)
#define LOG_INFO2(...)
#define LOG_INFO3(...)
#endif 

#else 
#define xLOG_INFO(...)
#define xLOG_INFO0(...)
#define xLOG_INFO1(...)
#define xLOG_INFO2(...) 
#define xLOG_INFO3(...)
#define xLOG_INFO4(...)

#define LOG_INFO(...) 
#define LOG_INFO0(...)
#define LOG_INFO1(...)
#define LOG_INFO2(...)
#define LOG_INFO3(...)
#define LOG_INFO4(...)
#define FORMAT_STRING(...)
#endif // !#if GLOBAL_LOG_ENABLED


#endif 

